[ 템플릿 코드 ]
#include <string>
#include <vector>
using namespace std;
int solution(vector<vector<int>> sizes) {
int answer = 0;
return answer;
}[ 풀이 ]
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<vector<int>> sizes)
{
int maxWidth = 0;
int maxHeight = 0;
for (auto card : sizes)
{
int width = max(card[0], card[1]);
int height = min(card[0], card[1]);
maxWidth = max(maxWidth, width);
maxHeight = max(maxHeight, height);
}
return maxWidth * maxHeight;
}[ 해설 ]
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<vector<int>> sizes)
{
// 지갑에 필요한 최대 가로 길이
int maxWidth = 0;
// 지갑에 필요한 최대 세로 길이
int maxHeight = 0;
// 모든 명함 확인
for (auto card : sizes)
{
// 명함의 긴 변
int width = max(card[0], card[1]);
// 명함의 짧은 변
int height = min(card[0], card[1]);
// 지금까지 나온 긴 변 중 가장 큰 값 저장
maxWidth = max(maxWidth, width);
// 지금까지 나온 짧은 변 중 가장 큰 값 저장
maxHeight = max(maxHeight, height);
}
// 모든 명함이 들어가는 최소 지갑 크기
return maxWidth * maxHeight;
}[ 타 답안 ]
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(vector<vector<int>> sizes)
{
// 정답(지갑 크기)을 저장할 변수
int answer = 0;
// w : 모든 명함의 짧은 변들 중 최대값
// h : 모든 명함의 긴 변들 중 최대값
int w = 0, h = 0;
// 모든 명함 확인
for (int i = 0; i < sizes.size(); i++)
{
// 현재 명함의 짧은 변 구하기
// min(가로, 세로)를 사용
// 지금까지 나온 짧은 변 중 가장 큰 값 저장
w = max(w, min(sizes[i][0], sizes[i][1]));
// 현재 명함의 긴 변 구하기
// max(가로, 세로)를 사용
// 지금까지 나온 긴 변 중 가장 큰 값 저장
h = max(h, max(sizes[i][0], sizes[i][1]));
}
// 필요한 지갑의 가로와 세로를 곱해 넓이 계산
answer = w * h;
// 최소 지갑 크기 반환
return answer;
}